package com.jinan.algorithm.greedy;

import java.util.Arrays;

/**
 * 三角形的最大周长
 * 给定由一些正数(代表长度)组成的数组 arr,返回由其中三个长度组成的、面积不为零的三角形的最大周长。
 * 如果不能形成任何面积不为零的三角形，返回`0。
 */
public class TrangleLargestPerimeter {
    public static void main(String[] args) {
        System.out.println(largestPerimeter(new int[]{3, 6, 2, 3}));
    }

    /**
     * 首先对数组进行排序。
     * 从数组的末尾开始，检查每三个数是否能组成三角形。
     * 如果找到一组能组成三角形的三个数，我们就返回它们的和。如果没有找到这样的三个数，我们就返回0。
     * @param nums
     * @return
     */
    public static int largestPerimeter(int[] nums) {
        Arrays.sort(nums);
        for (int i=nums.length-1;i>=2;i--){
            if(nums[i-2]+nums[i-1]>nums[i]){
                return nums[i-2]+nums[i-1]+nums[i];
            }
        }
        return 0;
    }
}
